package cn.tedu.sp03.service;

import com.fasterxml.jackson.core.type.TypeReference;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import pojo.User;
import service.UserService;
import web.util.JsonUtil;

import java.util.List;

@Slf4j
@Service
public class UserServiceImpl implements UserService {

    //读取application.yml中的配置
    @Value("${sp.user-service.users}")
    private String userJsonString;


    @Override
    public User getUser(Integer userId) {
        log.info("userJson:{}", userJsonString);

        // 模拟数据库里面的数据
        // 使用jackson反序列化对象列表的用法
        // 详细知识可以看jackson的序列化与反序列化
        List<User> list = JsonUtil.from(userJsonString, new TypeReference<List<User>>() {
        });

        // 模拟查询指定id的user
        for (User user : list) {
            if (user.getId() != null && user.getId().equals(userId)) {
                return user;
            }
        }
        return new User(userId, "新用户" + userId, "新用户的密码：" + userId);
    }

    @Override
    public void addScore(Integer userId, Integer score) {
        log.info("用户：{} 增加了 {} 积分", userId, score);
    }

}
